setTimeout(() => console.log(2))
new Promise(resolve => {
  console.log(3)
  setTimeout(() => console.log(4))
  Promise.resolve().then(() => {
    console.log(5)
  })
  resolve()
})
  .then(() => {
    console.log(6)
  })
  .then(() => {
    console.log(7)
  })
  .then(() => {
    console.log(10)
  })
new Promise(resolve => {
  console.log(13)
  resolve()
})
  .then(() => {
    console.log(8)
  })
  .then(() => {
    Promise.resolve()
      .then(() => {
        console.log(9)
      })
      .then(() => {
        console.log(11)
      })
  })
  .then(() => {
    console.log(12)
  })

//   start  3 13
//   micor: 5 6 8 7 10 9 12 11
//   macro:  2  4

// start 3 13 5 6 8 7 10 9 12 11 2 4
